Marginal effectsとその周辺

多変量回帰・・・好きですか?

Nozomi Niimi

東京医療センター総合内科

2025-06-12

皆さん多変量回帰は好きですか?

  • 古くから研究されつくされており、信頼感がある

  • 多くの統計ソフトに入っており、行うのが簡単

  • 解釈性が高く、分かりやすい

  • 本当?

多変量回帰は簡単?

Many regression species

  • 多変量回帰は多くの種類がある
    • 0/1でLogistic回帰
    • 整数値だとPoisson回帰
    • 順序ロジット
    • Censored regression(Cox回帰もこのうち)
  • 選択肢が多く、その分どうすればよいのか分からない!

例えば・・・・・・

  • ICU入室患者に対してRHCが予後を改善するかをみた観察研究(Connors et al. 1996)
    • Propensity scoreを広めた研究としても有名
  • 例えば、RHCが半年以内の死亡と関連するかをロジスティック回帰で解析をする
Base
RHC 1.16 [1.01, 1.32]
Not CHF 1.71 [1.29, 2.25]
Age 1.03 [1.03, 1.04]
Num.Obs. 5733
AIC 6882.7
BIC 7089.0
Log.Lik. -3410.366
RMSE 0.45
  • 結果として、RHCは半年以内の死亡と関連する!
  • しかし、ここで上司からのつっこみ

上司からのつっこみ①

結果①

Base Interact
RHC 1.16 [1.01, 1.32] 1.52 [1.02, 2.26]
Not CHF 1.71 [1.29, 2.25] 1.94 [1.40, 2.69]
Age 1.03 [1.03, 1.04] 1.03 [1.03, 1.04]
RHC:Not CHF 0.74 [0.49, 1.12]
Num.Obs. 5733 5733
AIC 6882.7 6882.7
BIC 7089.0 7095.7
Log.Lik. -3410.366 -3409.366
RMSE 0.45 0.45

上司からのつっこみ②

結果②

Base Interact Spline
RHC 1.16 [1.01, 1.32] 1.52 [1.02, 2.26]
Not CHF 1.71 [1.29, 2.25] 1.94 [1.40, 2.69]
Age 1.03 [1.03, 1.04] 1.03 [1.03, 1.04] 1.04 [1.03, 1.05]
RHC:Not CHF 0.74 [0.49, 1.12]
swang1=RHC 1.49 [1.00, 2.23]
cat_chf=Others 1.94 [1.40, 2.70]
age' 0.99 [0.96, 1.01]
age'' 1.04 [0.89, 1.21]
swang1=RHC * cat_chf=Others 0.75 [0.49, 1.14]
Num.Obs. 5733 5733 5733
R2 0.140
AIC 6882.7 6882.7 6884.1
BIC 7089.0 7095.7 7110.3
Log.Lik. -3410.366 -3409.366
RMSE 0.45 0.45

最終的に・・・・・・

例えば、2つの連続値をSplineで表したの場合

  • 解釈・・・・・・

我々はどこにいる?

こんな時にJAMA!

我々(臨床医)のしたい事

  • 根本的な問いかけ
    • 「誰への治療効果ですか?」
    • 「どうやった時の治療効果ですか?」

線形回帰の係数だと駄目な理由は?

  • 線形回帰の係数の解釈 = 条件付き期待値
    • 他の値を固定した時に、その因子を1単位変化した時の平均的なアウトカムの変化量
  • その結果、係数(OR, HRなど)という1つの値にまるめてしまう
  • 複雑な関係性をこの係数のみを報告する事で逆にわかりにくくなる事もある

じゃあ、どうやって報告する?

  • 「誰に?」「何が?」「どのくらい?」変化したら、アウトカムが変化するか?
  • 難しい言葉でいうと“Estimand”を報告する必要がある
  • 例えば
    1. 群全体: ATE
    2. 治療を受けた群全体: ATT
    3. 治療を受けなかった群全体: ATU

ここまでの纏め

  • 多変量解析は解釈がわかりにくい!
    • 特に、InteractionやSplineが入るとよりわかりにくい
    • 通常の解析だと、結果は集団全体の平均で丸め込まれてしまう
      • Estimandをどうやって出せばいい?

Marginal effectsという選択肢

  • G-computationを用いて限界効果を出す

G-computation

  • 本来は、結果のStandardizationの手法
  • Estimandを決定する方法もある

G-computationの考え方

実践①

  • 行数が2倍になっている事に注意!
  • swang1を全て0と1にしたデータセットを作成

実践②

  swang1 mean_estimate
1 No RHC     0.6381461
2    RHC     0.6655557
  • swang1毎でのestimateを纏める
  • 差をとったらRisk differenceを出せる
  • lnratioでOdds ratioを出せる

G-computationの応用~ATE/ATT/ATU

  • 元データのうち、元々Interventionが0/1の群だけで同様の事をするとATT/ATUも推定可能
  • Interventionだけでなくても、興味がある変数を動かす事で周辺効果(marginal effect)を出すことが可能
    • 少しわかりにくいけど、平均値みたいなイメージ
  • 重み付けを使うことで、Doubly robustも可能

G-computationの応用~Doubly robust

  1. Propensity score weightingを計算
  2. Outcomeを目標とする多変量回帰を作成
  3. 上記を組み合わせてDoubly robustを計算可能
  4. どの群を選ぶかでATT/ATE/ATUも簡単に計算可能!

G-computationの利点

  • 「この集団の介入を変えたら、どの程度良くなるか?」をダイレクトに伝えられる(King, Tomz, and Wittenberg 2000)
    • InteractionやSplineなど複雑な式でもシンプルに結果を伝えられる
  • 因果と予測を両方行う事が可能!

Average marginal prediction

通常のアウトカム式のみで一発勝負 ここはDoubly robustは使っちゃいけない

因果関係の場合

SUTVAの原理

そのため・・・・・・

例えば、Matching→G computation あるいは、元々のInclusionを入れて除外したあとにIPW→アウトカム式を入れる そうすることでDoubly robust estimationとなる

どういう式を作る?

基本は、ドメイン知識を入れる ただし、どのような関係性かをみるのにはAICとか、尤度比検定をしても良いかも

Box先生の名言

すべてのモデルは誤っている。しかし、そのうちのいくつかは役に立つ。

例えば

  • 大腸癌のデータセットLaurie et al. (1989)
Parameter Odds Ratio 95% CI p
(Intercept) 0.25 0.11, 0.56 < .001
rx [Lev] 0.92 0.66, 1.28 0.612
rx [Lev+5FU] 0.59 0.42, 0.83 0.003
age 1.01 1.00, 1.02 0.140
sex 1.03 0.78, 1.36 0.841
obstruct 1.41 1.00, 2.01 0.053
perfor 1.00 0.44, 2.29 0.997
adhere 1.65 1.11, 2.47 0.014
surg 1.47 1.07, 2.00 0.016
nodes 1.23 1.17, 1.30 < .001

結果の解釈

  1. Levamisoleの治療は経過観察と比べて有意差はなし
  2. Levamisole + 5-FUは経過観察に比べて予後良好と関連する

Good news!

(Hegyi et al. 2020)

  • NEJM, JAMA, Lancet, …を目指そう!
  • でも・・・
    • 例えば、副作用が30%増えるとして患者さんにどう説明する?
    • 他にも・・・

医学は無料ではない!

(Maurer et al. 2018)

  • 9716.5円/Cap x 4 x 365 = 1400万円/年

  • 医療経済的にどう考えればいい?

  • estimand -> 誰に?

  • どれくらい?

Marginal effects

  • 各群での、平均化(周辺化)した値をMarginal effectsという
    • 反対はConditional effectsという
  • 必要な群でのMarginal effectsこそが重要!!

RでのMarginal effectsの使い方

Thank you for your listening!!

References

Connors, A F, Jr, T Speroff, N V Dawson, C Thomas, F E Harrell Jr, D Wagner, N Desbiens, et al. 1996. “The Effectiveness of Right Heart Catheterization in the Initial Care of Critically Ill Patients. SUPPORT Investigators.” JAMA: The Journal of the American Medical Association 276 (11): 889–97. https://doi.org/10.1001/jama.276.11.889.
Dahabreh, Issa J, and Kirsten Bibbins-Domingo. 2024. “Causal Inference about the Effects of Interventions from Observational Studies in Medical Journals.” JAMA: The Journal of the American Medical Association 331 (21): 1845–53. https://doi.org/10.1001/jama.2024.7741.
Hegyi, Péter, Ole H. Petersen, Stephen Holgate, Bálint Erőss, András Garami, Zsolt Szakács, Dalma Dobszai, et al. 2020. “Academia Europaea Position Paper on Translational Medicine: The Cycle Model for Translating Scientific Results into Community Benefits.” Journal of Clinical Medicine 9 (5): 1532. https://doi.org/10.3390/jcm9051532.
King, Gary, Michael Tomz, and Jason Wittenberg. 2000. “Making the Most of Statistical Analyses: Improving Interpretation and Presentation.” American Journal of Political Science 44 (2): 347–61. https://doi.org/10.2307/2669316.
Laurie, J A, C G Moertel, T R Fleming, H S Wieand, J E Leigh, J Rubin, G W McCormack, J B Gerstner, J E Krook, and J Malliard. 1989. “Surgical Adjuvant Therapy of Large-Bowel Carcinoma: An Evaluation of Levamisole and the Combination of Levamisole and Fluorouracil. The North Central Cancer Treatment Group and the Mayo Clinic.” Journal of Clinical Oncology 7 (10): 1447–56. https://doi.org/10.1200/jco.1989.7.10.1447.
Maurer, Mathew S, Jeffrey H Schwartz, Balarama Gundapaneni, Perry M Elliott, Giampaolo Merlini, Marcia Waddington-Cruz, Arnt V Kristen, et al. 2018. “Tafamidis Treatment for Patients with Transthyretin Amyloid Cardiomyopathy.” The New England Journal of Medicine 379 (11): 1007–16. https://doi.org/10.1056/NEJMoa1805689.
Therneau, Terry M. 2024. A Package for Survival Analysis in r. https://CRAN.R-project.org/package=survival.